package com.test.ssm.controller;

import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;

/**
 * @author 徒有琴
 */
@ServerEndpoint("/sc")
@Component
public class SocketController {
    @OnOpen//此注解的作用是声明当前方法是当建立连接的时候调用
    public void onOpen(Session session) {
        System.out.println("有连接" + session);
    }

    @OnMessage//此注解的作用是当收到消息的时候执行
    public void onMessage(Session session, String message) {
        System.out.println("收到消息：" + message);
        //向客户端返回消息
        session.getAsyncRemote().sendText("我收到了，你发的是：" + message);
    }

    @OnClose//此注解的作用是 当连接关闭的时候执行
    public void onClose(Session session) {
        System.out.println(session + "关闭连接");
    }

    @OnError//此注解的作用是当出现异常的时候执行
    public void onError(Session session, Throwable e) {
        try {
            e.printStackTrace();
            session.close();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
}
